package com.example.javafx.javafx;

import javafx.application.Application;

import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import org.springframework.context.ConfigurableApplicationContext;

import java.io.IOException;

public class JavaFxApplication extends Application {
    private ConfigurableApplicationContext springContext;

//    @Override
//    public void init() {
//        // 初始化 Spring 上下文
//        springContext = new SpringApplicationBuilder(SpringbootjavafxApplication.class)
//                .headless(false) // 禁用 headless 模式（允许 GUI）
//                .run();
//    }

    @Override
    public void start(Stage primaryStage) throws IOException {
        // 从 Spring 获取主控制器
        FXMLLoader loader = new FXMLLoader(getClass().getResource("/com/example/javafx/main-view.fxml"));
//        loader.setControllerFactory(springContext::getBean); // 使用 Spring 创建控制器
        Parent root = loader.load();

        primaryStage.setScene(new Scene(root, 800, 600));
        primaryStage.setTitle("JavaFX + Spring Boot");
        primaryStage.show();
    }

    @Override
    public void stop() {
        springContext.close(); // 关闭 Spring 上下文
    }
}